package com.qqs.distributed.advice;

import org.redisson.api.ObjectListener;
import org.redisson.api.RBloomFilter;
import org.redisson.api.RFuture;
import org.redisson.client.codec.Codec;

import java.time.Instant;
import java.util.Date;
import java.util.concurrent.TimeUnit;

public class NullRBloomFilter implements RBloomFilter {
    @Override
    public boolean add(Object object) {
        return false;
    }

    @Override
    public boolean contains(Object object) {
        return false;
    }

    @Override
    public boolean tryInit(long expectedInsertions, double falseProbability) {
        return false;
    }

    @Override
    public long getExpectedInsertions() {
        return 0;
    }

    @Override
    public double getFalseProbability() {
        return 0;
    }

    @Override
    public long getSize() {
        return 0;
    }

    @Override
    public int getHashIterations() {
        return 0;
    }

    @Override
    public long count() {
        return 0;
    }

    @Override
    public boolean expire(long timeToLive, TimeUnit timeUnit) {
        return false;
    }

    @Override
    public boolean expireAt(long timestamp) {
        return false;
    }

    @Override
    public boolean expireAt(Date timestamp) {
        return false;
    }

    @Override
    public boolean expire(Instant instant) {
        return false;
    }

    @Override
    public boolean clearExpire() {
        return false;
    }

    @Override
    public long remainTimeToLive() {
        return 0;
    }

    @Override
    public RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit) {
        return null;
    }

    @Override
    public RFuture<Boolean> expireAtAsync(Date timestamp) {
        return null;
    }

    @Override
    public RFuture<Boolean> expireAtAsync(long timestamp) {
        return null;
    }

    @Override
    public RFuture<Boolean> expireAsync(Instant instant) {
        return null;
    }

    @Override
    public RFuture<Boolean> clearExpireAsync() {
        return null;
    }

    @Override
    public RFuture<Long> remainTimeToLiveAsync() {
        return null;
    }

    @Override
    public Long getIdleTime() {
        return null;
    }

    @Override
    public long sizeInMemory() {
        return 0;
    }

    @Override
    public void restore(byte[] state) {

    }

    @Override
    public void restore(byte[] state, long timeToLive, TimeUnit timeUnit) {

    }

    @Override
    public void restoreAndReplace(byte[] state) {

    }

    @Override
    public void restoreAndReplace(byte[] state, long timeToLive, TimeUnit timeUnit) {

    }

    @Override
    public byte[] dump() {
        return new byte[0];
    }

    @Override
    public boolean touch() {
        return false;
    }

    @Override
    public void migrate(String host, int port, int database, long timeout) {

    }

    @Override
    public void copy(String host, int port, int database, long timeout) {

    }

    @Override
    public boolean move(int database) {
        return false;
    }

    @Override
    public String getName() {
        return null;
    }

    @Override
    public boolean delete() {
        return false;
    }

    @Override
    public boolean unlink() {
        return false;
    }

    @Override
    public void rename(String newName) {

    }

    @Override
    public boolean renamenx(String newName) {
        return false;
    }

    @Override
    public boolean isExists() {
        return false;
    }

    @Override
    public Codec getCodec() {
        return null;
    }

    @Override
    public int addListener(ObjectListener listener) {
        return 0;
    }

    @Override
    public void removeListener(int listenerId) {

    }

    @Override
    public RFuture<Long> getIdleTimeAsync() {
        return null;
    }

    @Override
    public RFuture<Long> sizeInMemoryAsync() {
        return null;
    }

    @Override
    public RFuture<Void> restoreAsync(byte[] state) {
        return null;
    }

    @Override
    public RFuture<Void> restoreAsync(byte[] state, long timeToLive, TimeUnit timeUnit) {
        return null;
    }

    @Override
    public RFuture<Void> restoreAndReplaceAsync(byte[] state) {
        return null;
    }

    @Override
    public RFuture<Void> restoreAndReplaceAsync(byte[] state, long timeToLive, TimeUnit timeUnit) {
        return null;
    }

    @Override
    public RFuture<byte[]> dumpAsync() {
        return null;
    }

    @Override
    public RFuture<Boolean> touchAsync() {
        return null;
    }

    @Override
    public RFuture<Void> migrateAsync(String host, int port, int database, long timeout) {
        return null;
    }

    @Override
    public RFuture<Void> copyAsync(String host, int port, int database, long timeout) {
        return null;
    }

    @Override
    public RFuture<Boolean> moveAsync(int database) {
        return null;
    }

    @Override
    public RFuture<Boolean> deleteAsync() {
        return null;
    }

    @Override
    public RFuture<Boolean> unlinkAsync() {
        return null;
    }

    @Override
    public RFuture<Void> renameAsync(String newName) {
        return null;
    }

    @Override
    public RFuture<Boolean> renamenxAsync(String newName) {
        return null;
    }

    @Override
    public RFuture<Boolean> isExistsAsync() {
        return null;
    }

    @Override
    public RFuture<Integer> addListenerAsync(ObjectListener listener) {
        return null;
    }

    @Override
    public RFuture<Void> removeListenerAsync(int listenerId) {
        return null;
    }
}
